home *** CD-ROM | disk | FTP | other *** search
/ Internet Tools (InfoMagic) / Internet Tools.iso / security / rpcbind_1.1.README < prev    next >
Text File  |  1994-12-14  |  5KB  |  137 lines

  1. README for rpcbind 1.1 on Fri Dec  9 17:34:12 MET 1994
  2.  
  3. Description 
  4. -----------
  5.  
  6. This is an rpcbind replacement with tcp wrapper style access control.
  7. It provides a simple mechanism to discourage remote access to the NIS
  8. (YP), NFS, and other rpc services.
  9.  
  10. Alas, the Solaris 2.4 rpcbind will still export file systems to the
  11. world through proxy rpc.
  12.  
  13. This version is based on the freely-distributable tirpcsrc2.3 source
  14. distribution, as offered for anonymous FTP from playground.sun.com.
  15. According to the README:
  16.  
  17.     TIRPCSRC 2.3 29 Aug 1994
  18.  
  19.     This distribution contains SunSoft's implementation of
  20.     transport-independent RPC (TI-RPC), External Data Representation
  21.     (XDR), and various utilities and documentation.  These libraries
  22.     and programs form the base of Open Network Computing (ONC), and are
  23.     derived directly from the Solaris 2.3 source.
  24.  
  25. The program has undergone limited testing with SunOS 5.3 (Solaris 2.3).
  26. It is obviously very compatible with Solaris 2.3. It will probably work
  27. as well with earlier Solaris 2.x versions.
  28.  
  29. Features 
  30. --------
  31.  
  32. - host access control on IP addresses. The local host is considered
  33. authorized. Host access control requires the libwrap.a library that
  34. comes with recent tcp wrapper implementations.
  35.  
  36. - requests that are forwarded by the rpcbind process will be forwarded
  37. through an unprivileged port.
  38.  
  39. - the rpcbind process refuses to forward requests to rpc daemons that
  40. do (or should) verify the origin of the request: at present, the list
  41. includes most of the calls to the NFS mountd/nfsd daemons and the NIS
  42. daemons.
  43.  
  44. Restrictions 
  45. ------------
  46.  
  47. The host access control code looks at IP addresses only.
  48.  
  49. Limiting access to the rpcbind daemon does not protect you from direct
  50. attacks on the rpc daemons themselves; the main task of rpcbind is to
  51. maintain a table of available RPC services and of the network ports
  52. that they are listening on.
  53.  
  54. On the other hand, even though rpcbind with access control only makes
  55. an attack more difficult, it still provides an excellent early warning
  56. system.
  57.  
  58. Installation 
  59. ------------
  60.  
  61. (1) Follow the instructions in the Makefile, then build the rpcbind
  62. executable.
  63.  
  64. (2) Terminate (kill -TERM) the running rpcbind process. With "kill
  65. -TERM" the rpcbind daemon will save its state in files in /tmp.
  66.  
  67. If you kill the rpcbind process without saving its tables you will have
  68. to reboot the machine.
  69.  
  70. (3) Start the new rpcbind program with the -w (warmstart) option. This
  71. causes the program to initialize from the tables saved in step (2).
  72.  
  73. In order to revert to the original rpcbind daemon, kill off the running
  74. one with "kill -TERM", and start the original one.
  75.  
  76. Suggested entries for the host access-control files are:
  77.  
  78.     /etc/hosts.allow:
  79.     rpcbind: your.sub.net.number/your.sub.net.mask 
  80.     rpcbind: 255.255.255.255 0.0.0.0
  81.  
  82.     /etc/hosts.deny
  83.     rpcbind: ALL: (/some/where/safe_finger -l @%h | /bin/mail root) &
  84.  
  85. Safe_finger comes with later tcp/ip daemon wrapper releases. It gives
  86. better protection than the standard finger command.
  87.  
  88. The syntax of the access-control files is described in the
  89. hosts_access.5 manual page that comes with the tcp/ip daemon wrapper
  90. (log_tcp) sources. The second line in the hosts.allow file may be
  91. needed in case there are unconfigured systems on your network segment.
  92.  
  93. For security reasons, the rpcbind process does not run as root. The
  94. access control files should therefore be world-readable.
  95.  
  96. In order to avoid deadlocks, the rpcbind program does not attempt to
  97. look up the remote host name, nor will it try to match NIS netgroups.
  98. There is no need to specify the local system: since it runs the rpcbind
  99. daemon, it is authorized by definition. The reason for permitting whole
  100. networks in the hosts.allow file is that many systems produce broadcast
  101. rpc requests when booting.
  102.  
  103. Testing:  
  104. --------
  105.  
  106. Normally, only rejected requests will be reported via the syslog
  107. daemon.  Logging is done in a child process, in order to avoid possible
  108. deadlock in case the logging code needs assistance from the rpcbind
  109. process.
  110.  
  111. By default, the rpcbind process will be utterly silent. In fact, the
  112. rpcbind daemon is not consulted that often. Sending a SIGHUP signal to
  113. the rpcbind process will enable the logging of all requests.
  114.  
  115. With verbose logging turned on, requests such as "showmount" or
  116. "rpcinfo" should show up with log file entries such as:
  117.  
  118.  MMM dd hh:mm:ss hostname rpcbind: connect from x.x.x.x to getport(mountd)
  119.  MMM dd hh:mm:ss hostname rpcbind: connect from y.y.y.y to dump()
  120.  MMM dd hh:mm:ss hostname rpcbind: connect from loopback(xxxx) to unset()
  121.  
  122. In case of IP clients, the source IP address is logged; otherwise, the
  123. transport name and universal address are logged as transport(address).
  124.  
  125. Send another SIGHUP to the rpcbind process to turn the verbose logging off.
  126.  
  127. Acknowledgements:
  128. -----------------
  129.  
  130. Thanks to Robert Montjoy for helping with the port of my tirpcsrc1.0
  131. patches to the tirpcsrc2.0 environment.
  132.  
  133.     Wietse Venema (wietse@wzv.win.tue.nl) 
  134.     Mathematics and Computing
  135.     Science Eindhoven University of Technology 
  136.     The Netherlands
  137.